package cn.cxq.learning.single_linked_list;

/**
 * 剑指offer
 * 两个链表的第一个公共结点
 * 时间限制：C/C++ 1秒，其他语言2秒 空间限制：C/C++ 64M，其他语言128M 热度指数：475525
 * 本题知识点： 链表
 *  算法知识视频讲解
 * 题目描述
 * 输入两个无环的单链表，找出它们的第一个公共结点。（注意因为传入数据是链表，所以错误测试数据的提示是用其他方式显示的，保证传入数据是正确的）
 */
public class FirstCommonNode {

    public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {

        ListNode cur1 = pHead1;

        while (cur1!=null) {
            ListNode cur2 = pHead2;
            while (cur2!=null) {
                if (cur1 == cur2) {
                    return cur1;
                }
                cur2 = cur2.next;
            }
            cur1 = cur1.next;
        }

        return null;
    }
}
